Method of and apparatus for analyzing noise in a signal processing system

ABSTRACT

A fast accurate multi-channel frequency dependent scheme for analyzing noise in a signal processing system is described herein. Noise is decomposed within each channel into frequency bands and sub-band noise is propagated. To avoid the computational complexity of a convolution, traditional methods either assume the noise to be white, at any point in the signal processing pipeline, or they just ignore spatial operations. By assuming the noise to be white within each frequency band, it is possible to propagate any type of noise (white, colored, Gaussian, non-Gaussian and others) across a spatial transformation in a very fast and accurate manner. To demonstrate the efficacy of this technique, noise propagation is considered across various spatial operations in an image processing pipeline. Furthermore, the computational complexity is a very small fraction of the computational cost of propagating an image through a signal processing system.

FIELD OF THE INVENTION

The present invention relates to the field of signal processing. More specifically, the present invention relates to analyzing noise in a signal processing system.

BACKGROUND OF THE INVENTION

The analysis, propagation, and prediction of multivariate noise after a series of operations is a basic problem arising in many applications such as: audio signal processing, image denoising, digital imaging system design, seismic wave data analysis, and medical imaging. The signal processing steps that constitute these operations are able to be classified into three categories: linear, non-linear, and spatial. Existing methods are able to handle linear and non-linear transformations. However, they either ignore spatial signal processing steps, resulting in inaccurate noise propagation, or they employ convolution which is computationally very expensive. Therefore, they make the scheme impracticable for applications such as multi-parameter optimization, noise cancellation in audio, and predicting sub-band noise in real-time denoising.

If noise at the input of a spatial transformation is considered to be white, then the noise variance after filtering is able to simply be computed as the product of the input noise energy and the filter energy. Unfortunately, this assumption is not valid for most systems. Although the noise may be white at the beginning, its characteristics will change as it passes through a signal processing pipeline. Therefore, a mechanism is needed that is able to deal with both white and colored noise propagation.

SUMMARY OF THE INVENTION

A fast accurate multi-channel frequency dependent scheme for analyzing noise in a signal processing system is described herein. Noise is decomposed within each channel into frequency bands and sub-band noise is propagated. To avoid the computational complexity of a convolution, traditional methods either assume the noise to be white, at any point in the signal processing pipeline, or they just ignore spatial operations. By assuming the noise to be white within each frequency band, it is possible to propagate any type of noise (white, colored, Gaussian, non-Gaussian and others) across a spatial transformation in a very fast and accurate manner. To demonstrate the efficacy of this technique, noise propagation is considered across various spatial operations in an image processing pipeline. Furthermore, the computational complexity is a very small fraction of the computational cost of propagating an image through a signal processing system.

In one aspect, a method of analyzing noise in a signal comprises separating the noise into a plurality of sub-bands, determining a noise average for each of the sub-bands within the plurality of sub-bands and propagating the noise. The method further comprises receiving the signal containing the noise. The plurality of sub-bands are for each channel within a multi-channel system. Propagating the noise occurs in real-time. Alternatively, propagating the noise occurs offline. The method is applied in an application selected from the group consisting of digital image processing, sound processing, seismic wave data analysis and medical imaging. Preferably, each of the sub-bands are of equal width. The number of sub-bands depend on the desired accuracy. For image denoising, preferably the plurality of sub-bands is between 2 and 4, inclusive. However, any number of sub-bands is possible. The noise could be of any type: white noise, colored noise, Gaussian and non-Gaussian noise.

In another aspect, a method of analyzing noise comprises receiving a signal containing noise, decomposing the noise in each channel into a plurality of sub-bands, determining a noise average for each of the plurality of sub-bands and propagating the noise. The plurality of sub-bands are for each channel within a multi-channel system. Propagating the noise occurs in real-time. Alternatively, propagating the noise occurs offline. The method is applied in an application selected from the group consisting of digital image processing, sound processing, seismic wave data analysis and medical imaging. Preferably, each of the sub-bands are of equal width. Preferably, the plurality of sub-bands is between 2 and 4, inclusive. The noise could be of any type: white noise, colored noise, Gaussian and non-Gaussian noise.

In another aspect, a method of predicting noise after a spatial operation comprises decomposing the noise into a plurality of sub-bands and predicting sub-band noise, wherein the sub-band noise is a product of the sub-band noise before the spatial operation, sub-band energy of a spatial operation and the number of the plurality of sub-bands. The method further comprises assuming the noise is band-wise white. The noise is predicted in real-time. Preferably, each of the sub-bands are of equal width. Preferably, the plurality of sub-bands is between 2 and 4, inclusive. The noise could be of any type: white noise, colored noise, Gaussian and non-Gaussian noise.

In another aspect, a method of obtaining multi-channel/multi-band covariance matrices from a multi-channel system comprises splitting noise into a plurality of sub-bands per channel with a filter and generating an N×N matrix of sub-matrices wherein each of the sub-matrices is M×M. N is the number of sub-bands and M is the number of channels. The filter is selected from the group consisting of ideal and near-ideal band pass filters. Preferably, each of the sub-bands are of equal width. Preferably, the plurality of sub-bands is between 2 and 4, inclusive. The noise could be of any type: white noise, colored noise, Gaussian and non-Gaussian noise.

In yet another aspect, a system for propagating noise in a plurality of sub-bands comprises a splitting component for splitting the noise into the plurality of sub-bands and one or more processing components for receiving and propagating the noise in the plurality of sub-bands. The splitting component is a filter. The filter is selected from the group consisting of ideal and near-ideal band pass filters. Alternatively, the splitting component is a look-up table. The plurality of sub-bands are each per a channel. The noise could be of any type: white noise, colored noise, Gaussian and non-Gaussian noise. At least one of Human Visual System (HVS) models and Human Auditory System (HAS) models are able to be incorporated in the system.

In another aspect, a signal processing system comprises a receiver for receiving a signal containing noise, a filtering component for splitting the noise into a plurality of sub-bands and a processing component for determining a threshold for each of the sub-bands in the plurality of sub-bands and filtering the noise below the threshold. The filtering component is selected from the group consisting of ideal and near-ideal band pass filters. The plurality of sub-bands are each per a channel. The noise could be of any type: white noise, colored noise, Gaussian and non-Gaussian noise. At least one of Human Visual System (HVS) models and Human Auditory System (HAS) models are able to be incorporated in the system.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a block diagram of a process of obtaining multi-channel/multi-band covariance matrices from a multi-channel system.

FIG. 2 illustrates a block diagram of a linear transform applied to a multi-channel/multi-band scheme.

FIG. 3 illustrates a graphical representation of the noise and filter split into two bands.

FIGS. 4A-B illustrate block diagrams of noise propagation methodologies.

FIG. 5 illustrates a graphical representation of varying the number of sub-bands and FIR low-pass filter cutoff frequency on colored noise propagation accuracy.

FIG. 6 illustrates a block diagram of the frequency-domain effect of demosaicing.

FIG. 7 illustrates a block diagram of the frequency-domain effect of sharpening or edge enhancement.

FIG. 8 illustrates an exemplary camera image pipeline.

FIG. 9 illustrates a graphical representation of a comparison of the extended-B&B method and the B&B method.

FIG. 10 illustrates an exemplary camera image pipeline for analysis in a perceptually uniform color space (L*a*b* color space).

FIG. 11 illustrates a flowchart of a process of determining noise.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

A noise analysis framework for propagating both colored and white noise through all types of operations (linear, non-linear and spatial) is described herein. Input noise is decomposed into sub-bands and sub-band noise is propagated through a signal processing pipeline. Using this, it is possible to exactly predict sub-band noise after a linear or a non-linear (linearized via a Jacobian) transformation. For predicting noise after a spatial operation, the energy of the spatial operation is a-priori decomposed into sub-bands. By considering the noise to be band-wise white and by using ideal (or near-ideal) bandpass filtering, the sub-band noise after a spatial operation or transformation is simply the product of the sub-band noise energy before this operation, the sub-band energy of the spatial transformation and the number of sub-bands.

By decomposing noise in each channel into sub-bands and by assuming sub-band noise to be white within each band, noise is able to be accurately propagated across all signal processing operations (linear, non-linear and spatial).

By propagating sub-band noise, Human Visual System (HVS) models and Human Auditory System (HAS) models are able to be incorporated in the design of imaging and audio systems.

The approach described herein is very efficient computationally and does not require many calculations. Therefore, it is able to be used in multi-parameter optimization and real-time applications. The approach described herein is also able to be used in offline applications.

Further below are sections describing different components of the noise analysis system and methodology. The Band-Pass Filtering section describes the process of splitting both input noise and signal processing steps into sub-bands. The process of propagating multi-channel/multi-band noise across a linear operation is described in the Noise Propagation Across a Linear Transformation section. In the Split Filter Concept section, the split filter concept is presented, and it is shown that by using ideal (or near-ideal) band pass filtering, sub-band noise after a spatial operation is able to be predicted in a very fast way. In the Noise Propagation Across a Spatial Transformation section, the split-filter concept with assumptions that the noise is bandwise white allows efficient prediction of noise after spatial operations such as demosaicing, FIR filtering and edge enhancement. Further sections include the computational complexity and possible applications of the noise analysis system and method described herein.

Band-Pass Filtering

Before performing noise propagation calculations, both input noise and signal processing steps need to be split into sub-bands. The multi-channel input noise covariance matrix Σ has to be split into multi-band/multi-channel, covariance matrices. For instance, for an RGB (3-channel) image processing system, the full band, multi-channel, noise covariance matrix is able to be written as:

$\begin{matrix} {\Sigma = \begin{bmatrix} \sigma_{RR} & \sigma_{RG} & \sigma_{RB} \\ \sigma_{GR} & \sigma_{GG} & \sigma_{GB} \\ \sigma_{BR} & \sigma_{BG} & \sigma_{BB} \end{bmatrix}} & (1) \end{matrix}$

For ease of notation, the multi-band/multi-channel covariance matrices, obtained after splitting noise into sub-bands into a symmetric block covariance matrix are written:

$\begin{matrix} {\Sigma_{band} = \begin{bmatrix} \Sigma_{11} & \Sigma_{12} & \cdots & \Sigma_{1N} \\ \Sigma_{21} & \Sigma_{22} & \cdots & \Sigma_{2N} \\ \cdots & \cdots & \cdots & \cdots \\ \Sigma_{N\; 1} & \Sigma_{N\; 2} & \cdots & \Sigma_{NN} \end{bmatrix}} & (2) \end{matrix}$

where Σ_(ij)=Σ_(ji). This sub-band covariance matrix (Σ_(band)) includes N×N sub-matrices. Each sub-matrix is M×M where N is the number of sub-bands and M is the number of channels. The diagonal sub-matrices contain intra-band covariances (within a particular frequency band), while the off diagonal sub-matrices contain the interband (between frequency bands) covariances. The process of converting multi-channel noise with covariance Σ to a multi-channel/multi-band, covariance matrix Σ_(band) for a 3-channel system is illustrated in FIG. 1.

The splitting filter is able to be of any type. However, if ideal (or near ideal) band-pass filters (BPF) are used, covariances between sub-bands become zero. Therefore,

$\begin{matrix} {\Sigma_{band} = \begin{bmatrix} \Sigma_{11} & \; & \; & \; \\ \; & \Sigma_{11} & \; & \; \\ \; & \; & ⋰ & \; \\ \; & \; & \; & \Sigma_{NN} \end{bmatrix}} & (3) \end{matrix}$

becomes block diagonal, significantly simplifying the noise propagation calculation. Furthermore, for ideal (or near-ideal) BPF, it is possible to propagate noise across a spatial operation, such as Finite Impulse Response (FIR) filtering, demosaicing and edge enhancement.

Multi-channel/multi-band noise propagation for linear and spatial operations is described next. Non-linear operations are able to be linearized via a Jacobian matrix, therefore its analysis is similar to that of a linear equation.

Noise Propagation Across a Linear Transformation

In this subsection, the influence of a linear operation on a multi-band/multi-channel system is analyzed. As shown in FIG. 2, a linear matrix is applied to each of the covariance matrices. The block covariance matrix after a linear transformation A is able to be written as

${\Sigma_{band}^{A} = \begin{bmatrix} {A\; \Sigma_{11}A^{T}} & {A\; \Sigma_{12}A^{T}} & \cdots & {A\; \Sigma_{1N}A^{T}} \\ {A\; \Sigma_{21}A^{T}} & {A\; \Sigma_{22}A^{T}} & \cdots & {A\; \Sigma_{2N}A^{T}} \\ \vdots & \vdots & ⋰ & \cdots \\ {A\; \Sigma_{N\; 1}A^{T}} & {A\; \Sigma_{N\; 2}A^{T}} & \cdots & {A\; \Sigma_{NN}A^{T}} \end{bmatrix}},$

In compact form, this is rewritten to be:

$\begin{matrix} {\Sigma_{band}^{A} = {A_{band}\Sigma_{band}A_{band}^{T}}} & (4) \\ {{where},{A_{band} = \begin{bmatrix} A & \; & \; & \; \\ \; & A & \; & \; \\ \; & \; & ⋰ & \; \\ \; & \; & \; & A \end{bmatrix}}} & (5) \end{matrix}$

Since transformation A has no frequency dependence, the sub-matrices in A_(band) do not vary from sub-band to sub-band. The matrix Σ^(A) is able to be reconstructed from Σ_(band) ^(A), where Σ^(A)=AΣA^(T) is the full-band covariance matrix obtained by transforming the full-band input covariance Σ by a linear transform A.

Split Filter Concept

Thus far, it has been shown that the multi-channel/multi-band noise propagation scheme is able to exactly predict noise after a linear operation. As mentioned earlier, non-linear operations (such as gamma in an image processing pipeline) are linearized via a Jacobian. Hence, its analysis is similar to that of a linear operation. A theoretical expression for computing the output sub-band noise energy after a spatial transformation in terms of the input sub-band noise energy and the filter sub-band energy is derived herein.

The noise and filter are split into two bands as shown in FIG. 3. The input noise autocorrelation function of the first sub-band is able to be written as:

${\varphi_{x_{1}x_{1}}(n)} = \left\{ {\begin{matrix} {{2{Af}_{c}},} & {n = 0} \\ {A\frac{\sin \; 2\pi \; f_{c}n}{\pi \; n}} & {otherwise} \end{matrix},} \right.$

The autocorrelation function at zero lag represents the energy which is also the area under the frequency band. This energy is the sub-band variance. Therefore, the noise variance in the first sub-band is σ_(x) _(I) _(x) _(I) =2 Af_(c), the filter sub-band energy is σ_(h) _(I) _(h) _(I) =2Bf_(c), and the output sub-band energy is σ_(y) _(I) _(y) _(I) =2 ABf_(c). If the full-band is split into N sub-bands, the width of each band is

${{2f_{c}} = {\frac{1}{N}.\mspace{14mu} {Hence}}},{\sigma_{x_{1}x_{1}} = \frac{A}{N}},{\sigma_{h_{1}h_{1}} = {{\frac{B}{N}\mspace{14mu} {and}\mspace{14mu} \sigma_{y_{1}y_{1}}} = {\frac{AB}{N} = {\sigma_{x_{1}x_{1}}\sigma_{h_{1}h_{1}}{N.}}}}}$

As long as the band-pass filtering is ideal (or near ideal, e.g. a very long tap filter), the output sub-band noise energy is able to simply be estimated as the product of the input sub-band noise energy, spatial transform sub-band energy and the number of sub-bands. Without loss of generality, it can be written:

{circumflex over (σ)}_(y) _(i) _(y) _(i) =σ_(x) _(i) _(x) _(i) σ_(h) _(i) _(h) _(i) N,  (6)

where, i=1, . . . , N. The estimated full-band noise variance is simply the sum of the sub-band noise variances:

$\begin{matrix} {{\hat{\sigma}}_{yy} = {\sum\limits_{i = 1}^{N}{{\hat{\sigma}}_{y_{i}y_{i}}.}}} & (7) \end{matrix}$

Using this result, it is possible to predict noise after a spatial transformation in a very fast and accurate manner.

To evaluate the efficacy of the scheme, both exact and band-wise white noise propagation schemes are considered to propagate colored noise across a FIR low-pass filter (single-channel spatial transformation). The exact (convolution) and band-wise white propagation techniques are illustrated in FIGS. 4A-B, where FIG. 4A is the exact scheme and FIG. 4B is the band-wise white method. In FIG. 4A, σ_(xx) is the variance of the input sequence x, h is the filter and σ_(yy) is the variance of the filtered sequence y. In FIG. 4B, σ_(x) _(i) _(x) _(i) and σ_(h) _(i) _(h) _(i) are respectively the input and filter sub-band variances. The estimated output sub-band and full-band variances are respectively {circumflex over (σ)}_(y) _(i) _(y) _(i) and {circumflex over (σ)}_(yy), where i=1, . . . , N and N is the number of sub-bands. Colored noise is generated by pre-filtering white noise with a low-pass filter having a normalized cutoff frequency of 0.25. Using ideal (or near-ideal) band-pass filtering, both input noise variance σ_(xx) and the FIR filter variance σ_(hh) are decomposed into sub-band variances σ_(x) _(i) _(x) _(i) and σ_(h) _(i) _(h) _(i) , where i=1, . . . , N. Then, by using equations (6) and (7), the sub-band noise variance {circumflex over (σ)}_(y) _(i) _(y) _(i) and the full-band noise variance {circumflex over (σ)}_(yy) are estimated after filtering. To achieve the exact noise variance after filtering σ_(yy), an input noise sequence x of variance σ_(xx) is convolved with the filter h. This gives an output sequence y, from which σ_(yy) is obtained. Finally, a normalized error is used as a measure of noise propagation accuracy

$\begin{matrix} {ɛ_{\sigma_{yy}} = {\frac{{\hat{\sigma}}_{yy} - \sigma_{yy}}{\sigma_{yy}}.}} & (8) \end{matrix}$

To show the noise propagation accuracy of the method, the number of sub-bands is varied from 1 (full-band) to 10 and the FIR filter-cutoff frequency is varied from a normalized frequency of 0.05 to 0.95 and the effect on normalized error ε_(σ) _(yy) is evaluated. It can be seen from FIG. 5 that increasing the number of sub-bands improves colored noise propagation accuracy. This is what is expected from the bandwise-white assumption. Depending on the desired accuracy, the number of sub-bands preferably ranges from 4 to 7, generally, or 2 to 4 for image denoising.

Noise Propagation Across a Spatial Transformation

By assuming the noise to be bandwise white and by applying the split-filter concept described above, noise after a spatial operation is able to be predicted. Similar to equation (5), a block diagonal spatial transformation matrix is defined:

$\begin{matrix} {{S_{band} = \begin{bmatrix} S_{1} & \; & \; & \; \\ \; & S_{2} & \; & \; \\ \; & \; & ⋰ & \; \\ \; & \; & \; & S_{N} \end{bmatrix}},} & (9) \end{matrix}$

where S_(i) is the M×M transformation matrix for each frequency band, i=1, . . . , N, M is the number of channels, and N is the number of sub-bands. Once there is a block diagonal spatial transformation matrix S_(band), the sub-band noise covariance after a spatial operation Σ_(band) ^(S) is able to be expressed in terms of the sub-band noise covariance before filtering as

Σ_(band) ^(S)=S_(band)Σ_(band)S_(band) ^(T).  (10)

If the spatial transformation has no inter-channel correlations, e.g. FIR filtering, the matrix S_(i) would be a diagonal matrix. On the other hand, if the operation has spatial correlation between channels, e.g. demosaicing, the matrix S_(i) would have non-zero off-diagonal terms. Therefore, the key to predicting noise after any spatial operation is to devise the matrix S_(i) that accurately reflects the frequency domain behavior of the transformation.

In the following, the sub-band transformation matrix S_(i) is derived for filtering, demosaicing, and edge enhancement (or sharpening). These examples are just for illustration purposes. In a similar fashion, the matrix S_(i) is able to be formed for any spatial operation.

FIR Filtering

Since this operation does not have any spatial correlations between channels, the matrix S_(i) is an M by M diagonal matrix

$\begin{matrix} {{S_{i} = \begin{bmatrix} \sqrt{\sigma_{h_{i}h_{i}}^{1}N} & \; & \; & \; \\ \; & \sqrt{\sigma_{h_{i}h_{i}}^{2}N} & \; & \; \\ \; & \; & ⋰ & \; \\ \; & \; & \; & \sqrt{\sigma_{h_{i}h_{i}}^{M}N} \end{bmatrix}},} & (11) \end{matrix}$

where σ_(h) _(i) _(h) _(i) ^(j) is the variance of the i^(th) sub-band obtained from splitting the j^(th) channel FIR filter into sub-bands. If the same FIR filter is used for all channels, then σ_(h) _(i) _(h) _(i) ¹=σ_(h) _(i) _(h) _(i) ²= . . . =σ_(h) _(i) _(h) _(i) ^(M)=σ_(h) _(i) _(h) _(i) ¹, and equation (11) is able to be further simplified to

$S_{i} = {\begin{bmatrix} \sqrt{\sigma_{h_{i}h_{i}}N} & \; & \; & \; \\ \; & \sqrt{\sigma_{h_{i}h_{i}}N} & \; & \; \\ \; & \; & ⋰ & \; \\ \; & \; & \; & \sqrt{\sigma_{h_{i}h_{i}}N} \end{bmatrix}.}$

Demosaicing

The Color Filter Array (CFA) in a single sensor camera is typically in the form of a Bayer pattern. For an RGB camera, the imaging array includes 25% red, 50% green and 25% blue pixels. Therefore, in the sub-sampled multi-channel data obtained from the CFA, the green channel has both low and high frequency components, while red and blue channels have only low frequency information. To estimate remaining pixels, researchers have proposed a number of demosaicing algorithms. Although these methods have significant differences, an intrinsic property of all these approaches is that the high frequency information from the green channel is copied to the red and blue channels. This frequency domain effect of demosaicing is illustrated in FIG. 6.

Using these observations, equation (10) is re-written as

$\begin{matrix} {{\Sigma_{band} = \begin{bmatrix} \sigma_{R_{L}} & \; & \; & \; & \; & \; \\ \; & \sigma_{G_{L}} & \; & \; & 0 & \; \\ \; & \; & \sigma_{B_{L}} & \; & \; & \; \\ \; & \; & \; & 0 & \; & \; \\ \; & 0 & \; & \; & \sigma_{G_{H}} & \; \\ \; & \; & \; & \; & \; & 0 \end{bmatrix}},{S_{i} = \left\{ {\begin{matrix} {\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix},} & {i = 1} \\ {\begin{bmatrix} 1 & 1 & 0 \\ 0 & 1 & 0 \\ 0 & 1 & 1 \end{bmatrix},} & {i = 2} \end{matrix},{\Sigma_{band}^{S} = {\begin{bmatrix} \sigma_{R_{L}} & \; & \; & \; & \; & \; \\ \; & \sigma_{G_{L}} & \; & \; & 0 & \; \\ \; & \; & \sigma_{B_{L}} & \; & \; & \; \\ \; & \; & \; & \sigma_{G_{H}} & \sigma_{G_{H}} & \sigma_{G_{H}} \\ \; & 0 & \; & \sigma_{G_{H}} & \sigma_{G_{H}} & \sigma_{G_{H}} \\ \; & \; & \; & \sigma_{G_{H}} & \sigma_{G_{H}} & \sigma_{G_{H}} \end{bmatrix}.}}} \right.}} & (12) \end{matrix}$

From above, the expression for the matrix S_(i) which captures the essence of demosaicing for an RGB camera is

$\begin{matrix} {S_{i} = {\begin{bmatrix} 1 & \sqrt{\sigma_{h_{LPF}^{i}h_{LPF}^{i}}N} & 0 \\ 0 & 1 & 0 \\ 0 & \sqrt{\sigma_{h_{LPF}^{i}h_{LPF}^{i}}N} & 1 \end{bmatrix}.}} & (13) \end{matrix}$

Depending on the demosaicing algorithm, the characteristics of the high-pass filter are able to be quite different or additional inter-channel correlations may need to be considered.

Edge Enhancement or Sharpening

A sharpening operation enhances edges and other high frequency components in an image. For example, a procedure which subtracts an unsharp or smoothed version of an image from the original image x to enhance high-frequency content is illustrated in FIG. 7. The free parameter k controls the degree of sharpening. Assuming the noise to be band-wise white, the noise in the i^(th) sub-band of the sharpened image y is written as

$\begin{matrix} \begin{matrix} {{\sigma_{y^{i}y^{i}} = {{k\left( {\sigma_{x^{i}x^{i}} - {\sigma_{h_{LPF}^{i}h_{LPF}^{i}}\sigma_{x^{i}x^{i}}N}} \right)} + \sigma_{x^{i}x^{i}}}},} \\ {{= {\sigma_{x^{i}x^{i}}\left\lbrack {1 + {k\left( {1 - {\sigma_{h_{LPF}^{i}h_{LPF}^{i}}N}} \right)}} \right\rbrack}},} \\ {= {\sigma_{x^{i}x^{i}}\sqrt{1 + {k\left( {1 - {\sigma_{h_{LPF}^{i}h_{LPF}^{i}}N}} \right)}}{\sqrt{1 + {k\left( {1 - {\sigma_{h_{LPF}^{i}h_{LPF}^{i}}N}} \right)}}.}}} \end{matrix} & (14) \end{matrix}$

Therefore, the matrix S_(i) for predicting noise after a sharpening operation (if applied to all channels) is

$\begin{matrix} {S_{i} = {\begin{bmatrix} \sqrt{1 + {k_{1}\left( {1 - {\sigma_{h_{LPH}^{I}h_{LPH}^{I}}^{1}N}} \right)}} & \; & \; & \; \\ \; & \sqrt{1 + {k_{2}\left( {1 - {\sigma_{h_{LPH}^{I}h_{LPH}^{I}}^{2}N}} \right)}} & \; & \; \\ \; & \; & ⋰ & \; \\ \; & \; & \; & \sqrt{1 + {k_{M}\left( {1 - {\sigma_{h_{LPH}^{I}h_{LPH}^{I}}^{M}N}} \right)}} \end{bmatrix}.}} & (15) \end{matrix}$

The sharpening example in FIG. 7 employs a combination of a low-pass filter and a subtractor to realize high-pass filtering. This is only one embodiment of edge enhancement/sharpening. Other manifestations of this operation, which are able to also be easily handled by the present technique are able to utilize a band-pass filter to extract frequencies that need to be boosted.

Computational Complexity

Noise propagation can be achieved in one of three ways: a) simple multi-variate error propagation, also known as the Burns and Berns (B&B) method. This method can be used for analyzing the influence of linear and non-linear operations on noise. However, the B&B method ignores spatial transformations, therefore noise analysis is prone to error in a system that contains spatial operations; b) Image simulation, in which a set of color patches containing noise are propagated through a signal processing pipeline. This method is exact; and c) via the noise analysis framework described herein, which is referred to as the extended-B&B method. The computational complexity of extended-B&B is compared to image simulation for a typical RGB (M=3) digital camera image processing pipeline (shown in FIG. 8).

Image simulation refers to the process of propagating a color patch, whose channels (RGB in this case) contain noise of a given variance, through the imaging pipeline. In contrast, as explained earlier, the extended-B&B method splits the noise variance in each channel into sub-bands and propagates multi-channel/multi-band variances through the imaging pipeline. Using Equation (7), the full-band variances are able to be estimated, from the sub-band variances, at any point (YC_(h)C_(r), L*a*b*, and so on) in the imaging pipeline.

Analytical expressions are computed for the number of floating point operations (flops) for image simulation and extended-B&B schemes. The computational burden of the extended-B&B method is only a very small fraction of the computational cost of image simulation.

Image Simulation

The gain and white balancing blocks represent 3×3 diagonal matrices. They require 1 multiplication per pixel to propagate the image. A simple 4-neighbor bi-linear demosaicing operation that does not have any correlation between channels is assumed. This requires 3 additions and 1 multiplication per pixel. The matrix and the RGB2YCbCr matrices being dense, need 3 multiplications and 2 additions per pixel. The gamma operation is performed via a look-up table requiring no floating point computations. Filtering with a FIR filter of length P requires P multiplications and P−1 additions per pixel. Similarly, the sharpening operation, shown in FIG. 7 requires P+1 multiplications and P+3 additions per pixel.

To compute each entry of the noise covariance matrix of the propagated image, 1 addition per pixel is needed to get the mean and 2 additions and 1 multiplication per pixel for the variance. Since this matrix is symmetric, there are only

$\frac{M\left( {M + 1} \right)}{2}$

unique entries. Therefore, the number of per-pixel flops for computing the noise covariance matrix is 2M(M+1). To scale the mean and variance by the number of pixels in the image, 2 (one for each mean and variance) multiplications are needed for each entry in the noise variance-covariance matrix. Since the number of these computations is much smaller than the per-pixel flops, they are able to be ignored.

Combining the additions and multiplications of all operations for an M-channel camera system yields 2M(M+1)+16M+2(2P−1)+2P+4=2M²+18M+6P+2 flops per pixel (there are two FIR filters: one for each Cb and Cr channels). If a FIR filter of length P=25 and M=3, image simulation requires 224 flops per pixel. Therefore, to propagate a K×L image, through the simple image processing pipeline shown in FIG. 8, will require 224 K L flops. K, L should be chosen such that the image being propagated contains a statistically significant number of pixels. If K=L=100, then the computational overhead of image simulation is 2.24 million flops. This is not feasible for any practical system.

Extended-B&B Method

Variances of all filters are decomposed (de-mosaicing high-pass filter in FIG. 6, sharpening low-pass filter in FIG. 7, and FIR low-pass filter in FIG. 8) in the imaging pipeline a-priori into N sub-bands. The N sub-band noise variances at sensor output are also known. To propagate noise across a diagonal M×M matrix, 2M multiplications are needed per sub-band. Similarly, for a dense M×M matrix, 3 multiplications and 2 additions per sub-band are needed for each matrix element. This implies that 5M² flops per sub-band are needed to propagate noise across a dense matrix. For predicting noise after demosaicing, the procedure outlined in the Demosaicing section above is employed. Owing to the sparse nature of S_(i) in Equation (13), it is seen that computing noise after demosaicing involves 8M flops (4M multiplications and 4M additions) per sub-band. To simplify noise propagation across Cb/Cr filtering and Y-channel sharpening, the combined sub-band transformation matrix is formed

$\begin{matrix} {{S_{i} = \begin{bmatrix} \sqrt{1 + {k_{1}\left( {1 - {\sigma_{h_{sharp}^{i}h_{sharp}^{i}}N}} \right)}} & \; & \; \\ \; & \sqrt{\sigma_{h_{C_{b}}^{i}h_{C_{b}}^{i}}N} & \; \\ \; & \; & \sqrt{\sigma_{h_{C_{r}}^{i}h_{C_{r}}^{i}}N} \end{bmatrix}},} & (16) \end{matrix}$

where, σ_(h) _(sharp) ^(i) _(h) _(sharp) ^(i),

σ_(h_(C_(b))^(i)h_(C_(b))^(i))  and  σ_(h_(C_(r))^(i)h_(C_(r))^(i))

are the respective sub-band filter variances for the low-pass filter in sharpening, and C_(b), C_(r) filtering and i=1, . . . , N. Noise propagation across this combined transformation requires 6M flops per sub-band.

Therefore, the overhead of propagating noise via the extended-B&B scheme per sub-band is 4M flops for the two diagonal matrices (gain and white balancing), 8M flops for demosaicing, 10M² flops for the two dense matrices (Matrix and RGBto YCbCr matrix), 6M flops for the gamma operation which is linearized via a Jacobian, and 6M flops for the combined sharpening and Cb/Cr filtering transformation. For N sub-bands this adds up to (10M²+24M)N flops. For an RGB camera (M=3), this becomes 162N flops. For two sub-bands, 324 flops are needed, while four sub-bands require 648 flops. Therefore, the computational cost of extended-B&B method is less than 0.03% of image simulation and is certainly plausible for real-time applications.

There are applications where a-priori knowledge of sub-band variances is obtained at the start of the signal processing pipeline. In such situations, the computational cost of splitting noise variance into sub-bands must be included. Decomposing noise variance of each channel into N sub-bands requires N+1 Fast Fourier Transforms (FFT's)—one FFT to take the noise sequence to frequency domain and N inverse-FFT's to convert the split bands back to spatial domain. If the length of the forward FFT is Q, then the length of the inverse-FFT's are Q/N (split into N bands). The computational cost for M channels is

$M\left( {{4Q\; \log_{2}Q} - {6Q} + 8 + {N\left( {{4\; \frac{Q}{4}\log_{2}\frac{Q}{4}} - {6\frac{Q}{4}} + 8} \right)}} \right)$

flops. For a 64 point FFT, the cost of splitting noise into bands becomes (168N+1160)M. The cumulative flop count for splitting noise variances into sub-bands, the computational cost is 4812 flops, while for four sub-bands, the computational overhead is 6144 flops. Clearly, the main complexity is in the procedure for splitting noise into sub-bands. A more efficient splitting process, such as using a look-up table, will make the scheme even faster. Nevertheless, even with the computational cost of band splitting, extended-B&B is less than 0.2% of the computational complexity of image simulation.

Applications Digital Imaging System Design

Noise analysis, prediction and suppression is a significant problem in digital imaging system design. The captured image is corrupted by noise in the image sensor as well as by noise generated by system electronics. The noise has both signal independent and signal dependent components. Before the image is written to an output device, it undergoes a series of image processing steps such as color transformations, white balancing, gamma correction and filtering. These operations alter the characteristics of noise. Multivariate error-propagation, also known as the Burns and Berns (B&B) scheme, has been used for analyzing the influence of linear and non-linear transformations on noise as it propagates through a digital imaging pipeline. As mentioned earlier, these schemes ignore spatial transformations, therefore their noise analysis is not precise. In contrast, the present scheme is able to deal with all transformations and is very accurate.

To compare the strength of the present scheme with the B&B method for digital imaging system designs, colored noise is generated and passed through the linear, non-linear and spatial (FIR low-pass filter) operations representing a typical digital camera imaging pipeline. To obtain a meaningful comparison, the output is transformed to the perceptually uniform L*a*b* color space. A block diagram of the setup is given in FIG. 10. The reference for evaluating both methods (extended-B&B and B&B) is the noise obtained by propagating an image through all of the operations in FIG. 10 (σ_(LL), σ_(aa) and σ_(bb)). As shown in the computational complexity section, propagating an image is computationally very expensive and is only done for evaluation purposes. In the B&B method, fullband noise variances are propagated and the C_(b)/C_(r) FIR low-pass filter is ignored. While, for the extended-B&B technique, the noise is split into sub-bands and the sub-band noise variances are propagated to L*a*b* color space ({circumflex over (σ)}_(L) _(i) _(L) _(i) , {circumflex over (σ)}_(a) _(i) _(a) _(i) and {circumflex over (σ)}_(b) _(i) _(b) _(i) where i=1, . . . , N). Adding the sub-band variances (as in equation (7)), the estimated fullband noise in L*a*b* ({circumflex over (σ)}_(LL), {circumflex over (σ)}_(aa) and {circumflex over (σ)}_(bb)).

FIG. 8 shows a block diagram of a camera pipeline 800. An image sensor 802 sends a Gaussian, white and uncorrelated noise but has signal level dependence. The noise also has missing pixels (mosaiced). A gain component 804 produces high gain at low-light and low gain at high-light. Signal-noise behavior changes accordingly. A white balance component 806 changes gains for R, G and B depending on illumination. Furthermore, channel dependence exists after the white balance component 806. After using a demosaicing component 808 to demosaic complete RGB planes, there is frequency dependent inter-channel correlation. Specifically, G-channel high frequency noise is copied to the B and R channels, maintaining higher inter-channel correlation than at low frequency. After a matrix component 810 the inter-channel correlation is more complicated. After a gamma component 812, strong level dependence is added, and the noise is not Gaussian anymore. An RGB to YCbCr matrix 814 adds additional frequency dependence due to color signal band limiting. A sharpening/filtering component 816 boosts Y signal high frequency and the C signal is band limited. Final camera output usually has channel wise (YCbCr), signal-level-wise and band-wise noise. By using the noise analysis and methodology, the resulting noise is able to be predicted quickly and accurately.

Utilizing FIG. 8, the normalized noise propagation error ε_(σ) _(aa) in the a* channel is calculated for both B&B and extended-B&B schemes. To analyze the influence of the number of sub-bands on noise propagation accuracy, the number of frequency bands is also varied in ext-B&B technique from one to four.

From FIG. 9, it can be seen that noise propagation accuracy of the present scheme is highly superior to that of the B&B method. The present scheme efficiently incorporates the q/Cr low-pass filter by decomposing the noise and the filter into sub-bands via ideal (or near-ideal) band-pass filtering and by assuming the noise to be bandwise-white. In contrast, the B&B method ignores the low-pass FIR filter. For simple setups, two sub-bands are sufficient.

Speech and Audio Processing

The presence of noise impedes the intelligibility of speech. For noise reduction algorithms to work, they need an accurate estimate of the noise present in the audio signal. Typically, the interfering noise is not white. The multi-band/multi-channel scheme is able to accurately predict sub-band noise in a fast way ensuring that the denoising algorithm is able to work to its full potential in real-time.

Seismic Wave Data Analysis

Multi-channel seismic data interpretation is used for imaging earth's interior and has applications in earthquake prediction, oil and gas exploration and oceanography. An important step in the analysis of such data is noise removal. Noise can be coherent, incoherent and impulsive. It is due to different physical processes such as air blast, ground roll, swell noise, multiple diffraction ship/rig noise, surface/diffraction noise and so on. Multi-channel data acquisition and processing methods are used to separate the image from the noisy observations. The signal processing operations include deconvolution, filtering and stacking amongst others. The present scheme is able to be used to efficiently and accurately predict multi-channel noise in various sub-bands to ensure accurate noise removal.

Medical Imaging

In medical imaging applications, image quality is very important. A significant consideration is noise analysis and removal. Image noise can have different characteristics. For instance, noise in magnetic resonance imaging is able to be signal dependent as well as signal independent. In general, noise is not stationary or white. The present noise analysis scheme is able to accurately predict noise in a fast way so that the noise is able to be removed.

FIG. 11 illustrates a flowchart of a process of determining noise. In the step 1100, a signal is received or acquired wherein the signal contains noise. The signal is received or acquired at any device such as a digital camera, camcorder or any other computing device. In the step 1102, the noise is separated into a plurality of sub-bands. In the step 1104, the bandwise noise average is determined.

To utilize the noise analysis system and methodology, a device automatically analyzes noise in a more accurate and efficient manner. The device has access either internally or externally to the signal processing methodology described herein. The noise analysis methodology is able to be implemented in hardware, software or a combination of both and when noise is encountered, whatever desired operation, such as filtering, is carried out on the noise. Hardware components that are utilized when the method is implemented in hardware include a receiver for receiving a signal containing noise, a splitting/filtering component for splitting the noise into sub-bands and one or more processing components for receiving and propagating the noise. In some embodiments, a processing component is able to determine a threshold for each of the sub-bands in the plurality of sub-bands and filter the noise below the threshold.

In operation, the noise analysis system and methodology receives or acquires a signal containing noise. The noise is decomposed into 2 or more sub-bands for each channel. Then, analysis on each sub-band is able to occur. The noise analysis system and methodology allows fast and accurate propagation of any noise type such as white, colored, Gaussian and non-Gaussian.

The present invention has been described in terms of specific embodiments incorporating details to facilitate the understanding of principles of construction and operation of the invention. Such reference herein to specific embodiments and details thereof is not intended to limit the scope of the claims appended hereto. It will be readily apparent to one skilled in the art that other various modifications may be made in the embodiment chosen for illustration without departing from the spirit and scope of the invention as defined by the claims. 

1. A method of analyzing noise in a signal comprising: a. separating the noise into a plurality of sub-bands; b. determining a noise average for each of the sub-bands within the plurality of sub-bands; and c. propagating the noise.
 2. The method as claimed in claim 1 further comprising receiving the signal containing the noise.
 3. The method as claimed in claim 1 wherein the plurality of sub-bands are for each channel within a multi-channel system.
 4. The method as claimed in claim 1 wherein propagating the noise occurs in real-time.
 5. The method as claimed in claim 1 wherein propagating the noise occurs offline.
 6. The method as claimed in claim 1 wherein the method is applied in an application selected from the group consisting of digital image processing, sound processing, seismic wave data analysis and medical imaging.
 7. The method as claimed in claim 1 wherein each of the sub-bands are of equal width.
 8. The method as claimed in claim 1 wherein the plurality of sub-bands is between 2 and 4, inclusive.
 9. The method as claimed in claim 1 wherein the noise is selected from the group consisting of white noise, colored noise, Gaussian noise and non-Gaussian noise.
 10. A method of analyzing noise comprising: a. receiving a signal containing the noise; b. decomposing the noise in each channel into a plurality of sub-bands; c. determining a noise average for each of the plurality of sub-bands; and d. propagating the noise.
 11. The method as claimed in claim 10 wherein the plurality of sub-bands are for each channel within a multi-channel system.
 12. The method as claimed in claim 10 wherein propagating the noise occurs in real-time.
 13. The method as claimed in claim 10 wherein propagating the noise occurs offline.
 14. The method as claimed in claim 10 wherein the method is applied in an application selected from the group consisting of digital image processing, sound processing, seismic wave data analysis and medical imaging.
 15. The method as claimed in claim 10 wherein each of the sub-bands are of equal width.
 16. The method as claimed in claim 10 wherein the plurality of sub-bands is between 2 and 4, inclusive.
 17. The method as claimed in claim 10 wherein the noise is selected from the group consisting of white noise, colored noise, Gaussian noise and non-Gaussian noise.
 18. A method of predicting noise after a spatial operation comprising: a. decomposing the noise into a plurality of sub-bands; and b. predicting sub-band noise, wherein the sub-band noise is a product of the sub-band noise before the spatial operation, sub-band energy of a spatial operation and the number of the plurality of sub-bands.
 19. The method as claimed in claim 18 further comprising assuming the noise is band-wise white.
 20. The method as claimed in claim 18 wherein the noise is predicted in real-time.
 21. The method as claimed in claim 18 wherein each of the sub-bands are of equal width.
 22. The method as claimed in claim 18 wherein the plurality of sub-bands is between 2 and 4, inclusive.
 23. The method as claimed in claim 18 wherein the noise is selected from the group consisting of white noise, colored noise, Gaussian noise and non-Gaussian noise.
 24. A method of obtaining multi-channel/multi-band covariance matrices from a multi-channel system comprising: a. splitting noise into a plurality of sub-bands per channel with a filter; and b. generating an N×N matrix of sub-matrices wherein each of the sub-matrices is M×M.
 25. The method as claimed in claim 24 wherein N is the number of sub-bands and M is the number of channels.
 26. The method as claimed in claim 24 wherein the filter is selected from the group consisting of ideal and near-ideal band pass filters.
 27. The method as claimed in claim 24 wherein each of the sub-bands are of equal width.
 28. The method as claimed in claim 24 wherein the plurality of sub-bands is between 2 and 4, inclusive.
 29. The method as claimed in claim 24 wherein the noise is selected from the group consisting of white noise, colored noise, Gaussian noise and non-Gaussian noise.
 30. A system for propagating noise in a plurality of sub-bands comprising: a. a splitting component for splitting the noise into the plurality of sub-bands; and b. one or more processing components for receiving and propagating the noise in the plurality of sub-bands.
 31. The system as claimed in claim 30 wherein the splitting component is a filter.
 32. The system as claimed in claim 31 wherein the filter is selected from the group consisting of ideal and near-ideal band pass filters.
 33. The system as claimed in claim 30 wherein the splitting component is a look-up table.
 34. The system as claimed in claim 30 wherein the plurality of sub-bands are each per a channel.
 35. The system as claimed in claim 30 wherein the noise is selected from the group consisting of white noise, colored noise, Gaussian noise and non-Gaussian noise.
 36. The system as claimed in claim 30 wherein at least one of Human Visual System (HVS) models and Human Auditory System (HAS) models are incorporated in the system.
 37. A signal processing system comprising: a. a receiver for receiving a signal containing noise; b. a filtering component for splitting the noise into a plurality of sub-bands; and c. a processing component for determining a threshold for each of the sub-bands in the plurality of sub-bands and filtering the noise below the threshold.
 38. The system as claimed in claim 37 wherein the filtering component is selected from the group consisting of ideal and near-ideal band pass filters.
 39. The system as claimed in claim 37 wherein the plurality of sub-bands are each per a channel.
 40. The system as claimed in claim 37 wherein the noise is selected from the group consisting of white noise, colored noise, Gaussian noise and non-Gaussian noise.
 41. The system as claimed in claim 37 wherein at least one of Human Visual System (HVS) models and Human Auditory System (HAS) models are incorporated in the system. 